<html>
<head><meta charset="utf-8"><title>do we really need stage2..? · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html">do we really need stage2..?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="191659082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659082">(Mar 24 2020 at 19:12)</a>:</h4>
<p>Hey <span class="user-mention" data-user-id="119009">@eddyb</span> -- I was idly thinking to myself about how to make rustc development more amenable to incremental compilation. One of the challenges of course is the need to build a full stage2 build to get things working. If I recall, the main reason we need to do this is for symbol names and dynamic linking, right? (I mean, it's a good idea for when doing a full bootstrap anyway, but in terms of day-to-day development, it'd be nice to avoid.) Does the new work you did on a more a specified dynamic linking algorithm help at all here?</p>



<a name="191659124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659124">(Mar 24 2020 at 19:12)</a>:</h4>
<p>I... I'll need to break that down</p>



<a name="191659154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659154">(Mar 24 2020 at 19:13)</a>:</h4>
<blockquote>
<p>Does the new work you did on a more a specified dynamic linking algorithm help at all here?</p>
</blockquote>
<p>doesn't sound like anything I worked on</p>



<a name="191659232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659232">(Mar 24 2020 at 19:13)</a>:</h4>
<p>sorry I was just typing nonsense</p>



<a name="191659238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659238">(Mar 24 2020 at 19:13)</a>:</h4>
<p>doing too many things at once</p>



<a name="191659241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659241">(Mar 24 2020 at 19:13)</a>:</h4>
<p>I meant symbol naming algorithm</p>



<a name="191659242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659242">(Mar 24 2020 at 19:13)</a>:</h4>
<p>building the compiler locally is never really needed for local work (unless you want to build clippy or miri which need custom drivers)</p>



<a name="191659295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659295">(Mar 24 2020 at 19:14)</a>:</h4>
<p>I don't think symbol names factor into this at all</p>



<a name="191659310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659310">(Mar 24 2020 at 19:14)</a>:</h4>
<p>I could be just totally off base :)</p>



<a name="191659330"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659330" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659330">(Mar 24 2020 at 19:14)</a>:</h4>
<p>but I definitely remember that <em>at some point</em> stage1 builds would fail with stuff like custom derive, and I <em>believe</em> this was related to symbol naming</p>



<a name="191659342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659342">(Mar 24 2020 at 19:14)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> do people actually use stage2 for day to day dev?</p>



<a name="191659391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659391">(Mar 24 2020 at 19:15)</a>:</h4>
<p>I've tested on stage1 for years now, we just don't have a way to tell <code>x.py</code> aka <code>bootstrap</code> to only build the compiler once but otherwise run as many tests as possible (instead of whitelisting a dozen testsuites like I do)</p>



<a name="191659409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659409">(Mar 24 2020 at 19:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> aaaah I see. no, symbol names were just what you were seeing in errors</p>



<a name="191659428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659428">(Mar 24 2020 at 19:15)</a>:</h4>
<p>that's incompatible <code>proc_macro</code> ABI to be exact</p>



<a name="191659439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659439">(Mar 24 2020 at 19:15)</a>:</h4>
<p>I fixed it... some time last year, I think?</p>



<a name="191659449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659449">(Mar 24 2020 at 19:15)</a>:</h4>
<p>I used to use stage1 exclusively but at some point I changed to using stage2 because I was encountering too many annoying problems with stage2</p>



<a name="191659454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659454">(Mar 24 2020 at 19:16)</a>:</h4>
<p>but I'd be happy to know that's all outdated</p>



<a name="191659516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659516">(Mar 24 2020 at 19:16)</a>:</h4>
<p>I use <code>./x.py --keep-stage 1 test --stage 1 --pass check --bless src/test/ui/</code> myself</p>



<a name="191659524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659524">(Mar 24 2020 at 19:16)</a>:</h4>
<p>(in which case I wonder if we should consider changing the default, or making some easy way so that when compiler devs setup their environment for home builds, stage1 is the default?)</p>



<a name="191659561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659561">(Mar 24 2020 at 19:16)</a>:</h4>
<p>at minimum we should adjust our rustc-dev-guide instructions here, although I confess I've not checked what they currently say</p>



<a name="191659570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659570">(Mar 24 2020 at 19:17)</a>:</h4>
<p>(well, <code>--keep-stage 1</code> after the first build on a new branch)</p>



<a name="191659577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659577">(Mar 24 2020 at 19:17)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191659439" title="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191659439">said</a>:</p>
<blockquote>
<p>I fixed it... some time last year, I think?</p>
</blockquote>
<p>You mean <a href="https://github.com/rust-lang/rust/issues/49219" target="_blank" title="https://github.com/rust-lang/rust/issues/49219">#49219</a>?</p>



<a name="191659580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659580">(Mar 24 2020 at 19:17)</a>:</h4>
<p>so, here's the thing: <code>./x.py test --stage 1</code> doesn't build the compiler only once</p>



<a name="191659602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659602">(Mar 24 2020 at 19:17)</a>:</h4>
<p><span class="user-mention" data-user-id="133247">@bjorn3</span> yeah I was looking for the link, but you're faster :P</p>



<a name="191659647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659647">(Mar 24 2020 at 19:17)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> anyway you  want <span class="user-mention" data-user-id="116122">@simulacrum</span>. I've discussed this sort of thing with them before</p>



<a name="191659711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659711">(Mar 24 2020 at 19:18)</a>:</h4>
<p>The only test that always fails for me when testing stage1 is the hotplug-codegen-backend test, so that might indeed have to do with dynamic linking</p>



<a name="191659792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659792">(Mar 24 2020 at 19:18)</a>:</h4>
<p>Yeah, hotplug-codegen-backend needs to be compiled for the same rustc libraries as the rustc it will be linked to.</p>



<a name="191659808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659808">(Mar 24 2020 at 19:19)</a>:</h4>
<p>it's <em>so much worse</em></p>



<a name="191659846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659846">(Mar 24 2020 at 19:19)</a>:</h4>
<p>so first of all that test clearly needs <code>// ignore-stage1</code> or w/e</p>



<a name="191659946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659946">(Mar 24 2020 at 19:20)</a>:</h4>
<p><em>but also</em>, it's <code>fulldeps</code>. which means that even at <code>--stage 1</code> it builds <code>stage2</code>!</p>



<a name="191659975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191659975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191659975">(Mar 24 2020 at 19:20)</a>:</h4>
<p><code>fulldeps</code> tests are the bane of my existence and we should (IMO) eradicate them</p>



<a name="191660031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660031">(Mar 24 2020 at 19:20)</a>:</h4>
<p>or at least change the way we run them? I don't even know anymore</p>



<a name="191660094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660094">(Mar 24 2020 at 19:21)</a>:</h4>
<p>Why are they needed instead of being stage2-only tests?</p>



<a name="191660126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660126">(Mar 24 2020 at 19:21)</a>:</h4>
<p>imo, fulldeps tests should be eradicated, yes, and if <em>really</em> needed can be replaced with custom drivers I think (e.g., we build <code>rustc-test-xx</code> and the only thing it does is run a modified rustc that acts like the current fulldeps test did), which should be possible to do at any stage</p>



<a name="191660187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660187">(Mar 24 2020 at 19:22)</a>:</h4>
<p>for the record, this is (still) my VSCode <code>tasks.json</code>:</p>
<div class="codehilite"><pre><span></span><span class="p">{</span>
    <span class="c1">// See https://go.microsoft.com/fwlink/?LinkId=733558</span>
    <span class="c1">// for the documentation about the tasks.json format</span>
    <span class="s2">&quot;version&quot;</span><span class="o">:</span> <span class="s2">&quot;2.0.0&quot;</span><span class="p">,</span>
    <span class="s2">&quot;tasks&quot;</span><span class="o">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">&quot;label&quot;</span><span class="o">:</span> <span class="s2">&quot;remote&quot;</span><span class="p">,</span>
            <span class="s2">&quot;type&quot;</span><span class="o">:</span> <span class="s2">&quot;shell&quot;</span><span class="p">,</span>
            <span class="s2">&quot;command&quot;</span><span class="o">:</span> <span class="s2">&quot;yes &#39;&#39; | head -n $(tput lines) &amp;&amp; clear -x &amp;&amp; git push build -qf $((git stash create; echo HEAD) | head -n1):build-1 &amp;&amp; ssh -t build.lyken.rs \&quot;env SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt nix-shell -E &#39;with import&lt;nixpkgs&gt;{};clangStdenv.mkDerivation{name=\\\&quot;name\\\&quot;;hardeningDisable=[\\\&quot;all\\\&quot;];buildInputs=[ccache cmake fish file gdb libedit libgit2 libxml2 ncurses ninja openssl pkgconfig python37 ripgrep swig which zlib];}&#39; --run &#39;cd /home/eddy/Projects/rust-1 &amp;&amp; git checkout -q --detach build-1 &amp;&amp; ./x.py test --stage 0 src/tools/tidy &amp;&amp; rm -f src/test/debuginfo/issue-22656.rs &amp;&amp; ./x.py test --no-fail-fast --stage 1 src/test/{rustdoc,rustdoc-ui,mir-opt,codegen,codegen-units,incremental,pretty,debuginfo,compile-fail,run-make,run-fail,ui}&#39;\&quot;&quot;</span><span class="p">,</span>
            <span class="s2">&quot;group&quot;</span><span class="o">:</span> <span class="p">{</span>
                <span class="s2">&quot;kind&quot;</span><span class="o">:</span> <span class="s2">&quot;build&quot;</span><span class="p">,</span>
                <span class="s2">&quot;isDefault&quot;</span><span class="o">:</span> <span class="kc">true</span>
            <span class="p">},</span>
            <span class="s2">&quot;options&quot;</span><span class="o">:</span> <span class="p">{</span>
                <span class="s2">&quot;shell&quot;</span><span class="o">:</span> <span class="p">{</span>
                    <span class="s2">&quot;executable&quot;</span><span class="o">:</span> <span class="s2">&quot;bash&quot;</span><span class="p">,</span>
                    <span class="s2">&quot;args&quot;</span><span class="o">:</span> <span class="p">[</span>
                        <span class="s2">&quot;-c&quot;</span>
                    <span class="p">]</span>
                <span class="p">}</span>
            <span class="p">},</span>
            <span class="s2">&quot;presentation&quot;</span><span class="o">:</span> <span class="p">{</span>
                <span class="s2">&quot;echo&quot;</span><span class="o">:</span> <span class="kc">false</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">]</span>
<span class="p">}</span>
</pre></div>



<a name="191660251"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660251" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660251">(Mar 24 2020 at 19:22)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> the ignore-stage1 thing came later</p>



<a name="191660288"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660288" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660288">(Mar 24 2020 at 19:23)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191659846" title="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191659846">said</a>:</p>
<blockquote>
<p>so first of all that test clearly needs <code>// ignore-stage1</code> or w/e</p>
</blockquote>
<p><a href="https://github.com/rust-lang/rust/issues/70368" target="_blank" title="https://github.com/rust-lang/rust/issues/70368">#70368</a></p>



<a name="191660533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660533">(Mar 24 2020 at 19:24)</a>:</h4>
<p><span class="user-mention" data-user-id="211727">@Jonas Schievink</span> it's... weird. some <code>*-fulldeps</code> tests just use a tiny compiler dependency, like <code>graphviz</code> (I am not kidding, <code>run-make-fulldeps/save-analysis</code> is literally just that)</p>



<a name="191660674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660674">(Mar 24 2020 at 19:26)</a>:</h4>
<p>^ For reference: <a href="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/run-make-fulldeps/save-analysis/foo.rs" target="_blank" title="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/run-make-fulldeps/save-analysis/foo.rs">https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/run-make-fulldeps/save-analysis/foo.rs</a></p>



<a name="191660712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660712">(Mar 24 2020 at 19:26)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/run-make-fulldeps/save-analysis/foo.rs#L7-L8" target="_blank" title="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/run-make-fulldeps/save-analysis/foo.rs#L7-L8">lmao</a></p>



<a name="191660777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660777">(Mar 24 2020 at 19:27)</a>:</h4>
<p>I love how some shotgun/exhaustive tests can read like a shitpost (the classic one is weird-syntax or w/e it was called)</p>



<a name="191660899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660899">(Mar 24 2020 at 19:28)</a>:</h4>
<p>You mean <a href="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/ui/weird-exprs.rs" target="_blank" title="https://github.com/rust-lang/rust/blob/2dcf54f564c6d8bbf48960fb9aaec88a0e2e062a/src/test/ui/weird-exprs.rs"><code>weird-exprs.rs</code></a>?</p>



<a name="191660935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660935">(Mar 24 2020 at 19:28)</a>:</h4>
<blockquote>
<p>// Just a grab bag of stuff that you wouldn't want to actually write.</p>
</blockquote>



<a name="191660970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191660970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191660970">(Mar 24 2020 at 19:28)</a>:</h4>
<p>s/wouldn't want/shouldn't want :)</p>



<a name="191662451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191662451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> davidtwco <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191662451">(Mar 24 2020 at 19:42)</a>:</h4>
<p>Stage two was useful for finding bugs in my polymorphisation work that compiling std or the tests didn't catch, there should still be a easy way to build stage two locally and it should be tested in CI. Prior to the polymorphisation, very rarely did I ever need stage two when hacking on rustc.</p>



<a name="191662653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191662653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191662653">(Mar 24 2020 at 19:44)</a>:</h4>
<p>Yes to both those points</p>



<a name="191663368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191663368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191663368">(Mar 24 2020 at 19:51)</a>:</h4>
<p>IMO we should treat it like "full bootstrap" today (which today means stage2-std is actually built and not a copy of stage1-std)</p>



<a name="191663405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191663405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191663405">(Mar 24 2020 at 19:51)</a>:</h4>
<p>as in, you might want it in some cases, and it's on for CI</p>



<a name="191663566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191663566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191663566">(Mar 24 2020 at 19:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191660187" title="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191660187">said</a>:</p>
<blockquote>
<p>for the record, this is (still) my VSCode <code>tasks.json</code>:</p>
<div class="codehilite"><pre><span></span><span class="c1">// ...</span>
            <span class="s2">&quot;command&quot;</span><span class="o">:</span> <span class="s2">&quot;yes &#39;&#39; | head -n $(tput lines) &amp;&amp; clear -x &amp;&amp; git push build -qf $((git stash create; echo HEAD) | head -n1):build-1 &amp;&amp; ssh -t build.lyken.rs \&quot;env SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt nix-shell -E &#39;with import&lt;nixpkgs&gt;{};clangStdenv.mkDerivation{name=\\\&quot;name\\\&quot;;hardeningDisable=[\\\&quot;all\\\&quot;];buildInputs=[ccache cmake fish file gdb libedit libgit2 libxml2 ncurses ninja openssl pkgconfig python37 ripgrep swig which zlib];}&#39; --run &#39;cd /home/eddy/Projects/rust-1 &amp;&amp; git checkout -q --detach build-1 &amp;&amp; ./x.py test --stage 0 src/tools/tidy &amp;&amp; rm -f src/test/debuginfo/issue-22656.rs &amp;&amp; ./x.py test --no-fail-fast --stage 1 src/test/{rustdoc,rustdoc-ui,mir-opt,codegen,codegen-units,incremental,pretty,debuginfo,compile-fail,run-make,run-fail,ui}&#39;\&quot;&quot;</span>
<span class="c1">// ...</span>
</pre></div>


</blockquote>
<p>oops I forgot about this. what I meant to say is that this is the test command:<br>
<code>./x.py test --no-fail-fast --stage 1 src/test/{rustdoc,rustdoc-ui,mir-opt,codegen,codegen-units,incremental,pretty,debuginfo,compile-fail,run-make,run-fail,ui}</code></p>



<a name="191663615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191663615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191663615">(Mar 24 2020 at 19:53)</a>:</h4>
<p>oh wow literally a dozen test suites</p>



<a name="191664307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191664307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191664307">(Mar 24 2020 at 19:59)</a>:</h4>
<p>(run-fail &amp; compile-fail are vestigial)</p>



<a name="191665079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191665079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191665079">(Mar 24 2020 at 20:06)</a>:</h4>
<p>but they still exist, right? ideally we'd get rid of them</p>



<a name="191665099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191665099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191665099">(Mar 24 2020 at 20:06)</a>:</h4>
<p>I wish refactoring <code>compiletest</code> would be easy</p>



<a name="191665755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191665755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191665755">(Mar 24 2020 at 20:12)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> yea we want to move them to UI tests</p>



<a name="191687610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191687610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191687610">(Mar 24 2020 at 23:53)</a>:</h4>
<p>For whatever reason, I often end up with weird errors when I try incremental stage 1 builds, and now I just don't run anything and let the CI warn me if I can</p>



<a name="191687720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191687720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191687720">(Mar 24 2020 at 23:54)</a>:</h4>
<p>Also related: would it be possible to do a check-only compiler? that is, a compiler that is incapable of doing anything except a <code>cargo check</code>. Would that allow us to just run UI tests by building the check-only compiler with beta + incremental and then running ui tests with the check-only compiler?</p>



<a name="191703578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191703578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191703578">(Mar 25 2020 at 05:57)</a>:</h4>
<p>the only thing you could skip is LLVM I guess?</p>



<a name="191703583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191703583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191703583">(Mar 25 2020 at 05:57)</a>:</h4>
<p><span class="user-mention" data-user-id="198054">@mark-i-m</span> at a minimum you can just run <code>./x.py test --stage 1 src/ui</code></p>



<a name="191703627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191703627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191703627">(Mar 25 2020 at 05:58)</a>:</h4>
<p>would be useful to know what commands you got errors for and how you're enabling incremental, too</p>



<a name="191703629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191703629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191703629">(Mar 25 2020 at 05:58)</a>:</h4>
<p>since I set <code>incremental = true</code> in <code>config.toml</code> and never pass <code>-i</code></p>



<a name="191703642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191703642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191703642">(Mar 25 2020 at 05:58)</a>:</h4>
<p>I think the <code>-i</code> flag is weird and easy to miss if you're typing commands by hand and I frankly don't know what will happen then, probably nothing good</p>



<a name="191840177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/191840177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#191840177">(Mar 26 2020 at 04:50)</a>:</h4>
<p>oh, hmm... maybe that's it... I didn't know there was a config.toml setting for that. I always use <code>./x.py test --stage 1 -i</code> except that often results in weird compile errors or strange test failures, so then I resort to <code>./x.py test --stage 1</code> which often works but sometimes it doesn't.  I haven't been keeping track of the exact tests that fail though. I can do that in the future</p>



<a name="192086179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086179">(Mar 27 2020 at 22:07)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191703629" title="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/191703629">said</a>:</p>
<blockquote>
<p>since I set <code>incremental = true</code> in <code>config.toml</code> and never pass <code>-i</code></p>
</blockquote>
<p>I'm not doing this in general because incremental gives me troubles from time to time</p>



<a name="192086180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086180">(Mar 27 2020 at 22:07)</a>:</h4>
<p>right now ...</p>



<a name="192086191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086191">(Mar 27 2020 at 22:07)</a>:</h4>
<div class="codehilite"><pre><span></span>error: unused attribute
    --&gt; src/libcore/num/mod.rs:4176:13
     |
2446 | / macro_rules! uint_impl {
2447 | |     ($SelfT:ty, $ActualT:ty, $BITS:expr, $MaxV:expr, $Feature:expr, $EndFeature:expr,                                                                                                                                                2448 | |         $rot:expr, $rot_op:expr, $rot_result:expr, $swap_op:expr, $swapped:expr,
2449 | |         $reversed:expr, $le_bytes:expr, $be_bytes:expr,
...    |
4176 | |             #[allow_internal_unstable(const_fn_union)]
     | |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...    |
4334 | |     }
4335 | | }
     | |_- in this expansion of `uint_impl!`
...
4850 | /     uint_impl! { u64, u64, 64, 18446744073709551615, &quot;&quot;, &quot;&quot;, 12, &quot;0xaa00000000006e1&quot;, &quot;0x6e10aa&quot;,
4851 | |     &quot;0x1234567890123456&quot;, &quot;0x5634129078563412&quot;, &quot;0x6a2c48091e6a2c48&quot;,
4852 | |     &quot;[0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x34, 0x12]&quot;,
4853 | |     &quot;[0x12, 0x34, 0x56, 0x78, 0x90, 0x12, 0x34, 0x56]&quot;,
4854 | |     &quot;&quot;, &quot;&quot;}
     | |___________- in this macro invocation
</pre></div>



<a name="192086210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086210">(Mar 27 2020 at 22:07)</a>:</h4>
<p>getting a bunch of errors like this ^^^</p>



<a name="192086269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086269">(Mar 27 2020 at 22:08)</a>:</h4>
<p>so I prefer to pass -i unless it doesn't work like right now :)</p>



<a name="192086571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086571">(Mar 27 2020 at 22:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116266">@Santiago Pastorino</span> yeah that's a known bug, it just doesn't constantly trigger. I tend to nuke <code>stage0-std</code> when that happens</p>



<a name="192086578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086578">(Mar 27 2020 at 22:12)</a>:</h4>
<p>still totally worth it</p>



<a name="192086591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192086591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192086591">(Mar 27 2020 at 22:12)</a>:</h4>
<p>(but yeah we should fix that bug already lol)</p>



<a name="192089047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089047">(Mar 27 2020 at 22:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="119009">eddyb</span> <a href="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/192086571" title="#narrow/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F/near/192086571">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="116266">Santiago Pastorino</span> yeah that's a known bug, it just doesn't constantly trigger. I tend to nuke <code>stage0-std</code> when that happens</p>
</blockquote>
<p>what do you mean exactly?</p>



<a name="192089159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089159">(Mar 27 2020 at 22:45)</a>:</h4>
<p>exactly by what?</p>



<a name="192089199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089199">(Mar 27 2020 at 22:45)</a>:</h4>
<p>it's an incremental bug that triggers from time to time and I <code>rm -rf build/*/stage0-std</code> when it happens</p>



<a name="192089283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089283">(Mar 27 2020 at 22:46)</a>:</h4>
<p>and after that it goes away?, it was consistently happening to me</p>



<a name="192089298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089298">(Mar 27 2020 at 22:46)</a>:</h4>
<p>well, yes, unless you change <code>libcore</code> again</p>



<a name="192089335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089335">(Mar 27 2020 at 22:47)</a>:</h4>
<p>I don't know the exact condition, I think enough code in <code>libcore</code> has to change, so that attributes go out of sync</p>



<a name="192089338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089338">(Mar 27 2020 at 22:47)</a>:</h4>
<p>I was doing some <code>librustc_mir</code> changes</p>



<a name="192089365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089365">(Mar 27 2020 at 22:47)</a>:</h4>
<p>how could you see that failure? <code>libcore</code> can't change if you just edit <code>librustc_mir</code></p>



<a name="192089375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089375">(Mar 27 2020 at 22:47)</a>:</h4>
<p>were you switching between branches or rebasing?</p>



<a name="192089472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089472">(Mar 27 2020 at 22:49)</a>:</h4>
<p>so I've compiled last master</p>



<a name="192089483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089483">(Mar 27 2020 at 22:49)</a>:</h4>
<p>then switched to a branch that has one extra commit</p>



<a name="192089487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089487">(Mar 27 2020 at 22:49)</a>:</h4>
<p>rebased to put that one on top of master</p>



<a name="192089491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089491">(Mar 27 2020 at 22:49)</a>:</h4>
<p>and tried to compile</p>



<a name="192089501"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089501" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089501">(Mar 27 2020 at 22:49)</a>:</h4>
<p>in the process you've touched something in <code>libcore</code></p>



<a name="192089513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089513">(Mar 27 2020 at 22:49)</a>:</h4>
<p>nope</p>



<a name="192089518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089518">(Mar 27 2020 at 22:49)</a>:</h4>
<p>you can avoid that by rebasing directly, without switching to the branch you want to rebase first</p>



<a name="192089574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089574">(Mar 27 2020 at 22:50)</a>:</h4>
<p>but I see what you meant</p>



<a name="192089579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089579">(Mar 27 2020 at 22:50)</a>:</h4>
<p>e.g. <code>git rebase master my-branch</code></p>



<a name="192089610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/do%20we%20really%20need%20stage2..%3F/near/192089610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Santiago Pastorino <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/do.20we.20really.20need.20stage2.2E.2E.3F.html#192089610">(Mar 27 2020 at 22:50)</a>:</h4>
<p>yeah, makes sense <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>